#include "Initialization.h"
#include <iostream>
#include <fstream>

void Initialization::FoKuldetestBeolvas()
{
    int n,sorszam;
    std::string nev,faljnev;
    std::ifstream f("kuldetesek.txt");
    if(f.fail()) throw MISSING_FILE;
    f >> n;
    for(int i=0;i<n;++i)
    {
        f >> sorszam;
        getline(f,nev);
        getline(f,nev);
        f >> faljnev;
        Kuldetes u(nev,faljnev,sorszam);
        FoKuldetes.push_back(u);
    }
    f.close();
}

void Initialization::Torol()
{
    for(int i = 0; i < myKuldetes.size(); ++i)
    {
        delete myKuldetes[i];
    }
}

void Initialization::KuldetestBeolvas(std::string fajl)
{
    int n,m,sorszam,vedo,tamado,gyorsasag,moral,eredmeny,xp,elagazas,tipus,hatar,szint;
    std::string nev,fonev,rejtveny;
    std::ifstream f(fajl.c_str());
    if(f.fail()) { throw MISSING_FILE; }

    f >> m;
    for(int j=0;j<m;++j)
    {
        f >> sorszam;
        f >> tipus;

        if(tipus == 1)
        {
            getline(f,nev);
            getline(f,nev);
            getline(f,rejtveny);
            f >> eredmeny;
            f >> hatar;
            f >> xp;
            f >> elagazas;

            Fejtoro *k = new Fejtoro(tipus,nev,rejtveny,eredmeny,hatar,xp,elagazas,sorszam,fonev,n);
            myKuldetes.push_back(k);
        }

        if(tipus == 2)
        {
            getline(f,nev);
            getline(f,nev);
            f >> szint;
            f >> tamado;
            f >> vedo;
            f >> gyorsasag;
            f >> moral;
            f >> xp;
            f >> elagazas;

            Harcos *k = new Harcos(tipus,nev,szint,tamado,vedo,gyorsasag,moral,xp,elagazas,sorszam,fonev,n);
            myKuldetes.push_back(k);
            }
        }
    f.close();
}

void Initialization::KasztotBeolvas()
{
    std::ifstream f("kaszt.txt");
    if(f.fail()) { throw MISSING_FILE; }
    int n,tamado,vedo,moral,gyorsasag,sorszam;
    std::string nev;

    f >> n;
    for (int i=0;i<n;++i)
    {
        f >> sorszam;
        f >> nev;
        f >> tamado;
        f >> vedo;
        f >> gyorsasag;
        f >> moral;
        Kasztok u(sorszam,nev,tamado,vedo,gyorsasag,moral);
        myKasztok.push_back(u);
    }
    f.close();
}
